% 初始化图像处理
image = imread('pic_measure.png');
gray = rgb2gray(image);

% 转移到 GPU
gray_gpu = gpuArray(gray);

% 去阴影（GPU 加速）
se = strel('disk', 15);
top_hat_gpu = imtophat(gray_gpu, se);
enhanced_gpu = imadjust(top_hat_gpu);

% 从 GPU 转回 CPU
enhanced_cpu = gather(enhanced_gpu);

% 设置保存路径
output_dir = 'D:\dip\exp2\results';
% if ~exist(output_dir, 'dir')
%    mkdir(output_dir);
% end

% 保存增强后的图像
output_file = fullfile(output_dir, 'enhanced_image.png');
imwrite(enhanced_cpu, output_file);

% 打印保存路径
fprintf('增强图像已保存到: %s\n', output_file);

% 在 GPU 上执行 Sobel 边缘检测
edges_gpu = edge(enhanced_gpu, 'Sobel');

% 从 GPU 转回 CPU 保存结果
edges_cpu = gather(edges_gpu);

% 保存到文件

output_file_edges = fullfile(output_dir, 'edges_image_sobel.png');
imwrite(edges_cpu, output_file_edges);

fprintf('边缘图像（Sobel 算子）已保存到: %s\n', output_file_edges);
